package 注解.元注解;

public class Test {
    public static void main(String[] args) {
        // 元注解:
        // 指的是: 修饰注解的注解

        // 常用的元注解:
        // 1. @Target:
        //    作用: 声明被修饰的注解只能在那些位置使用
        //    @Target(ElementType.TYPE)   (其中TYPE可以替换为下面任意, 表示只能在这个位置使用)
        //    TYPE, 类,接口
        //    FIELD, 成员变量
        //    METHOD, 成员方法
        //    PARAMETER. 方法参数
        //    CONSTRUCTOR, 构造器
        //    LOCAL_VARIABLE, 局部变量

        // 2. @Retention:
        //    作用: 声明注解的保留周期
        //    @Retention(RetentionPolicy.RUNTIME)
        //    SOURCE:  只作用在源码阶段, 字节码文件中不存在
        //    CLASS (默认值) : 保留到字节码文件阶段, 运行阶段不存在
        //    RUNTIME (开发常用) : 一致保留到运行阶段
    }
}
